package com.industrial.im.mapper;

import java.util.List;
import java.util.Map;

import com.industrial.im.domain.DispatchKeyItemManagement;
import com.industrial.im.domain.vo.NameAndValueVo;
import org.apache.ibatis.annotations.Param;

/**
 * 重点事项管理Mapper接口
 *
 * @author SangGuangCan
 * @date 2024-03-08
 */
public interface DispatchKeyItemManagementMapper
{
    /**
     * 查询重点事项管理
     *
     * @param baseId 重点事项管理主键
     * @return 重点事项管理
     */
    public DispatchKeyItemManagement selectDispatchKeyItemManagementByBaseId(String baseId);

    /**
     * 查询重点事项管理列表
     *
     * @param dispatchKeyItemManagement 重点事项管理
     * @return 重点事项管理集合
     */
    public List<DispatchKeyItemManagement> selectDispatchKeyItemManagementList(DispatchKeyItemManagement dispatchKeyItemManagement);

    /**
     * 新增重点事项管理
     *
     * @param dispatchKeyItemManagement 重点事项管理
     * @return 结果
     */
    public int insertDispatchKeyItemManagement(DispatchKeyItemManagement dispatchKeyItemManagement);

    /**
     * 修改重点事项管理
     *
     * @param dispatchKeyItemManagement 重点事项管理
     * @return 结果
     */
    public int updateDispatchKeyItemManagement(DispatchKeyItemManagement dispatchKeyItemManagement);

    /**
     * 删除重点事项管理
     *
     * @param baseId 重点事项管理主键
     * @return 结果
     */
    public int deleteDispatchKeyItemManagementByBaseId(String baseId);

    /**
     * 批量删除重点事项管理
     *
     * @param baseId 需要删除的数据主键
     * @return 结果
     */
    public int deleteDispatchKeyItemManagementByBaseIds(@Param("baseId") String baseId);

    /**
     * 验收
     * @param params
     * @return
     */
    void check(DispatchKeyItemManagement params);

    /**
     * 重点事项类型占比
     *
     * @return
     */
    List<Map> queryItemTypeCount();


    Map<String,Long> sjddyjYwc();

    Map<String,Long> sjddyjWwc();

    List<DispatchKeyItemManagement> selectDispatchKeyItemManagementStatsList(DispatchKeyItemManagement params);

    List<NameAndValueVo> queryDeptEventItemCount();

    List<NameAndValueVo> queryDqCount();

    /**
     * 通过ID查询重点事项基础信息
     * @param baseId
     * @return
     */
    DispatchKeyItemManagement selectBaseInfoDispatchKeyItemManagementByBaseId(String baseId);

    /**
     * 更新状态
     * @param updateParams
     */
    void updateDispatchKeyItemManagementStatus(DispatchKeyItemManagement updateParams);

    /**
     * 更新结束时间
     * @param updateParams
     */
    void updateDispatchKeyItemManagementEndTime(DispatchKeyItemManagement updateParams);
}
